home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / Voyeur 1.1.1 / Voyeur ƒ / v code ƒ / v graphics.c < prev    next >
Text File  |  1994-02-26  |  3KB  |  105 lines

  1. /**********************************************************************\
  2.  
  3. File:        v graphics.c
  4.  
  5. Purpose:    This module handles drawing the main window (the actual
  6.             graphics part of displaying the file data).
  7.  
  8.  
  9. Voyeur -- a no-frills file viewer
  10. Copyright ©1993-4, Mark Pilgrim
  11.  
  12. This program is free software; you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation; either version 2 of the License, or
  15. (at your option) any later version.
  16.  
  17. This program is distributed in the hope that it will be useful,
  18. but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. GNU General Public License for more details.
  21.  
  22. You should have received a copy of the GNU General Public License
  23. along with this program in a file named "GNU General Public License".
  24. If not, write to the Free Software Foundation, 675 Mass Ave,
  25. Cambridge, MA 02139, USA.
  26.  
  27. \**********************************************************************/
  28.  
  29. #include "v graphics.h"
  30. #include "v.h"
  31. #include "program globals.h"
  32. #include "v hex.h"
  33. #include "msg graphics.h"
  34.  
  35. void DrawTheWindowColor(int index)
  36. {
  37.     RGBColor    oldForeColor, oldBackColor;
  38.  
  39.     GetForeColor(&oldForeColor);
  40.     GetBackColor(&oldBackColor);
  41.     
  42.     DrawTheWindowBW(index);
  43.     
  44.     RGBForeColor(&oldForeColor);
  45.     RGBBackColor(&oldBackColor);
  46. }
  47.  
  48. void DrawTheWindowBW(int index)
  49. {
  50.     GrafPtr        curPort;
  51.     int            i,j;
  52.     int            temp;
  53.     Rect        invertRect;
  54.     Str255        tempStr;
  55.     
  56.     GetPort(&curPort);
  57.     
  58.     EraseRect(&(curPort->portRect));
  59.  
  60.     TextFont(monaco);
  61.     TextSize(9);
  62.     
  63.     for (i=0; i<16; i++)
  64.     {
  65.         temp=i*16;
  66.         MoveTo(10,15+i*12);
  67.         DrawChar(hexchar[1][i]);
  68.         DrawString("\p0:  ");
  69.         for (j=0; j<16; j++)
  70.         {
  71.             DrawChar(hexchar[0][gTheBuffer[index][temp+j]]);
  72.             DrawChar(hexchar[1][gTheBuffer[index][temp+j]]);
  73.             DrawChar(' ');
  74.         }
  75.         DrawChar(' ');
  76.         for (j=0; j<16; j++)
  77.         {
  78.             DrawChar(asciichar[gTheBuffer[index][temp+j]]);
  79.         }
  80.     }
  81.     invertRect.top=6+12*(gBufferOffset[index]/16);
  82.     invertRect.bottom=invertRect.top+11;
  83.     invertRect.left=38+18*(gBufferOffset[index]%16);
  84.     invertRect.right=invertRect.left+15;
  85.     InvertRect(&invertRect);
  86.     
  87.     invertRect.left=333+6*(gBufferOffset[index]%16);
  88.     invertRect.right=invertRect.left+7;
  89.     InvertRect(&invertRect);
  90.     
  91.     MoveTo(10, 219);
  92.     DrawString("\pOffset: ");
  93.     LongToHexString(gTheOffset[index][gWhichFork[index]], tempStr);
  94.     DrawString(tempStr);
  95.     DrawString("\p    Total length: ");
  96.     LongToHexString(gForkLength[index][gWhichFork[index]], tempStr);
  97.     DrawString(tempStr);
  98.     DrawString("\p    ");
  99.     if (gWhichFork[index]==0)
  100.         DrawString("\pData");
  101.     else
  102.         DrawString("\pResource");
  103.     DrawString("\p fork");
  104. }
  105.